package com.example.controller;

import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.atomic.AtomicReference;

/**
 * @author chenming
 * Date  2023/5/25 10:05
 * @version 1.0
 * description
 */
public class Example {

//    public static void main(String[] args) {
//        List<Object> list = new ArrayList<Object>();
//        List<Integer> list1 = new ArrayList<Integer>();
//        list1.add(1); list1.add(2); list1.add(3); list1.add(4);
//        List<Integer> list2 = new ArrayList<Integer>();
//        list2.add(1); list2.add(2); list2.add(3); list2.add(4);
//        list.add(list1);
//        list.add(list2);
//        list.add(66);
//        list.add(77);
//
//        List<Integer> resultList = new ArrayList<Integer>();
//        list.forEach(
//                o -> {
//                    if(o instanceof List){
//                        ((List) o).forEach(a->resultList.add((Integer) a));
//                    }
//                    if(o instanceof Integer ){
//                        resultList.add((Integer) o);
//                    }
//                }
//        );
//
//        System.out.println(resultList);
//    }


//    public static void main(String[] args) {
//        List<Object> list = new ArrayList<Object>();
//        List<Integer> list1 = new ArrayList<Integer>();
//        list1.add(1);
//        list1.add(2);
//        list1.add(3);
//        list1.add(4);
//        List<Integer> list2 = new ArrayList<Integer>();
//        list2.add(1);
//        list2.add(2);
//        list2.add(3);
//        list2.add(4);
//        list.add(list1);
//        list.add(list2);
//        list.add(66);
//        list.add(77);
//        list.addAll(list);
//        System.out.println(list);
//
//        List<Object> resultList = new ArrayList<Object>();
//        System.out.println( getList(resultList, list));
//    }
//
//    public static List<Object> getList(List<Object> resultList, List<Object> list) {
//        AtomicReference<Boolean> flag = new AtomicReference<>(false);
//        list.forEach(
//                o -> {
//                    if (o instanceof List) {
//                        resultList.addAll(((List<?>) o));
//                        flag.set(true);
//                    }
//                    if (o instanceof Integer) {
//                        resultList.add(o);
//                    }
//                }
//        );
//
//        if (flag.get()) {
//            getList(resultList, list);
//        }
//        return resultList;
//    }

    public static void main(String[] args) {
        System.out.println(getNetFileSizeDescription(1024199));
    }

    public static String getNetFileSizeDescription(long size) {
        StringBuffer bytes = new StringBuffer();
        DecimalFormat format = new DecimalFormat("###.00");
        if (size >= 1024 * 1024 * 1024) {
            double i = (size / (1024.0 * 1024.0 * 1024.0));
            bytes.append(format.format(i)).append("GB");
        } else if (size >= 1024 * 1024) {
            double i = (size / (1024.0 * 1024.0));
            bytes.append(format.format(i)).append("MB");
        } else if (size >= 1024) {
            double i = (size / (1024.0));
            bytes.append(format.format(i)).append("KB");
        } else if (size < 1024) {
            if (size <= 0) {
                bytes.append("0B");
            } else {
                bytes.append((int) size).append("B");
            }
        }
        return bytes.toString();
    }
}
